From 08b986f88b4c4c5d19a50b9883fff2dff582c7df Mon Sep 17 00:00:00 2001 From: Dario Faggioli Date: Wed, 4 Nov 2015 13:03:31 +0100 Subject: [PATCH] xl: avoid (another) uninitialised use of rc in vcpuset() Rearange the case when we check the new number of vCPUs against the number of host pCPUs not to use rc for internal error reporting. In fact: - rc was at risk of being used uninitialised; - rc should only be used for holding libxl error codes. Signed-off-by: Dario Faggioli Acked-by: Ian Campbell --- tools/libxl/xl_cmdimpl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 9b6b42ca2f..78048a1c72 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -5457,21 +5457,21 @@ static int vcpuset(uint32_t domid, const char* nr_vcpus, int check_host) * by the host's amount of pCPUs. */ if (check_host) { - unsigned int host_cpu = libxl_get_max_cpus(ctx); + unsigned int online_vcpus, host_cpu = libxl_get_max_cpus(ctx); libxl_dominfo dominfo; if (libxl_domain_info(ctx, &dominfo, domid)) return 1; - if (max_vcpus > dominfo.vcpu_online && max_vcpus > host_cpu) { + online_vcpus = dominfo.vcpu_online; + libxl_dominfo_dispose(&dominfo); + + if (max_vcpus > online_vcpus && max_vcpus > host_cpu) { fprintf(stderr, "You are overcommmitting! You have %d physical" \ " CPUs and want %d vCPUs! Aborting, use --ignore-host to" \ " continue\n", host_cpu, max_vcpus); - rc = 1; - } - libxl_dominfo_dispose(&dominfo); - if (rc) return 1; + } } rc = libxl_cpu_bitmap_alloc(ctx, &cpumap, max_vcpus); if (rc) { -- 2.30.2